package com.xhwl.logistics.service.cent;


import com.xhwl.common.pojo.cent.auth.AuthAccountMapping;
import feign.Param;
import feign.RequestLine;

import java.util.List;

/**
 * 使用授权中台的feign接口
 */
//@FeignClient(value = "cent-auth")
public interface IAuthAccountService {

    /**
     * 通过第三方的人员id找到人员关联表
     * @param openIds
     * @return
     */
    @RequestLine(value = "POST /account-mapping-core/list-by-openid")
    List<AuthAccountMapping> listByOpenIds(@Param("openIds") List<String> openIds);


    /**
     * 通过项目id、产品id和用户id来查找与第三方id关联的表
     * @param projectId
     * @param accountId
     * @param productId
     * @return
     */
    @RequestLine(value = "POST /account-mapping-core/query")
    AuthAccountMapping query(@Param("projectId") Integer projectId,
                             @Param("accountId") Integer accountId,
                             @Param("productId") Integer productId);

    /**
     * 保存用户id和第三方的联系
     * @param projectId
     * @param accountId
     * @param openId
     * @param openCode
     * @param productId
     * @return
     */
    @RequestLine(value = "POST /account-mapping-core/save")
    boolean save(@Param("projectId") Integer projectId,
                 @Param("accountId") Integer accountId,
                 @Param("openId") String openId,
                 @Param("openCode") String openCode,
                 @Param("productId") Integer productId);

    /**
     * 删除用户id和第三方的联系
     * @param projectId
     * @param accountId
     * @param openId
     * @param productId
     * @return
     */
    @RequestLine(value = "POST /account-mapping-core/delete")
    boolean deleteAccountMapping(@Param("projectId") Integer projectId, @Param("accountId") Integer accountId, @Param("openId") String openId, @Param("productId") Integer productId);
}
